/*
 * Simulation.h
 *
 *  Created on: Apr 9, 2012
 *      Author: lfelipe
 */

#ifndef SIMULATION_H_
#define SIMULATION_H_

#include <string>
#include "FileNameSequence.h"

class Simulation
{
    FileNameSequence *circuit;
    FileNameSequence *statistic;
    FileNameSequence *tex_name;

    int id;
    std::string folder;
    std::string instance_name;

public:
    Simulation();
    virtual ~Simulation();
    Simulation(const Simulation & simulation);
    Simulation & operator=(const Simulation & simulation);

    std::string generate_circuit_name_sequence(const std::string & name ="");
    std::string generate_statistics_name_sequence();
    std::string generate_tex_name_sequence(const std::string & name="");
    std::string generate_folder_name_sequence();
    void clear_simulation();
    virtual void execute(int argc,char *argv[])=0;

    int create_folder();
};

#endif /* SIMULATION_H_ */

